const formidable = require('formidable');
const path = require('path');
const { Article } = require('../../model/article');


module.exports = (req, res) => {
    // 1.创建表单解析对象
    const form = new formidable.IncomingForm();
    // 2.配置上传文件的存放位置
    form.uploadDir = path.join(__dirname, '../', '../', 'public', 'uploads');
    // 3.保留上传文件的后缀
    form.keepExtensions = true;
    // 4.解析表单
    form.parse(req, async (err, fields, files) => {
        // 1.err错误对象 如果表单解析失败 err里面存储错误信息 如果表单解析成功 err将会是null
        // 2.fields 对象类型 保存普通表单数据
        // 3.files 对象类型 保存了和上传文件相关的数据
        let coverPath=null;
        // 判断用户是否修改了图片
        // 如果上传的图片尺寸为0（即没有上传） 且原来存在图片
        if(files.cover.size==0){
            if(fields.isFile){
                coverPath=fields.isFile;
            }
        }else{
            coverPath=files.cover.path.split('public')[1];
        }

        await Article.updateOne({
            title:fields.title,
            author:fields.author,
            publishDate:fields.publishDate,
            content:fields.content,
            cover:coverPath
        });
        res.redirect('/admin/article');
    })
}